<!DOCTYPE html>
<!-- saved from url=(0029)chrome-error://chromewebdata/ -->
<html dir="ltr" lang="zh" subframe=""><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  
  <meta name="theme-color" content="#fff">
  <meta name="viewport" content="width=device-width, initial-scale=1.0,
                                 maximum-scale=1.0, user-scalable=no">
  <title>www.google.com</title>
  <style>/* Copyright 2017 The Chromium Authors
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

a {
  color: var(--link-color);
}

body {
  --background-color: #fff;
  --error-code-color: var(--google-gray-700);
  --google-blue-50: rgb(232, 240, 254);
  --google-blue-100: rgb(210, 227, 252);
  --google-blue-300: rgb(138, 180, 248);
  --google-blue-600: rgb(26, 115, 232);
  --google-blue-700: rgb(25, 103, 210);
  --google-gray-100: rgb(241, 243, 244);
  --google-gray-300: rgb(218, 220, 224);
  --google-gray-500: rgb(154, 160, 166);
  --google-gray-50: rgb(248, 249, 250);
  --google-gray-600: rgb(128, 134, 139);
  --google-gray-700: rgb(95, 99, 104);
  --google-gray-800: rgb(60, 64, 67);
  --google-gray-900: rgb(32, 33, 36);
  --heading-color: var(--google-gray-900);
  --link-color: rgb(88, 88, 88);
  --primary-button-fill-color-active: var(--google-blue-700);
  --primary-button-fill-color: var(--google-blue-600);
  --primary-button-text-color: #fff;
  --quiet-background-color: rgb(247, 247, 247);
  --secondary-button-border-color: var(--google-gray-500);
  --secondary-button-fill-color: #fff;
  --secondary-button-hover-border-color: var(--google-gray-600);
  --secondary-button-hover-fill-color: var(--google-gray-50);
  --secondary-button-text-color: var(--google-gray-700);
  --small-link-color: var(--google-gray-700);
  --text-color: var(--google-gray-700);
  --edge-background: var(--edge-grey-background);
  --edge-black: #101010;
  --edge-focus-color: #838383;
  --edge-blue-hover: #0078D4;
  --edge-blue-pressed: #1081D7;
  --edge-blue-rest: #0070C6;
  --edge-blue-selected: #004274;
  --edge-border-hover:#949494;
  --edge-border-pressed: #ADADAD;
  --edge-border-rest: #C5C5C5;
  --edge-grey-background: #F6F6F6;
  --edge-grey-selected: #C6C6C6;
  --edge-light-grey-hover: #F3F3F3;
  --edge-light-grey-pressed: #F7F7F7;
  --edge-light-grey-rest: #EFEFEF;
  --edge-primary-text-color: var(--edge-black);
  --edge-secondary-text-color: var(--edge-text-grey-rest);
  --edge-text-blue-hover: #0070C6;
  --edge-text-blue-rest: #0061AB;
  --edge-text-blue-pressed: #1081D7;
  --edge-text-grey-rest: #6F6F6F;
  --edge-white: #FFFFFF;
  --edge-primary-button-focus-shadow: 0 0 0 2px inset #F2F8FD;
  --edge-focus-outline: 2px solid var(--edge-focus-color);
  background: var(--edge-background);
  color: var(--edge-primary-text-color);
  word-wrap: break-word;
}

.nav-wrapper .secondary-button {
  background: var(--secondary-button-fill-color);
  border: 1px solid var(--secondary-button-border-color);
  color: var(--secondary-button-text-color);
  float: none;
  margin: 0;
  padding: 8px 16px;
}

.hidden {
  display: none;
}

html {
  -webkit-text-size-adjust: 100%;
  font-size: 125%;
}

.icon {
  background-repeat: no-repeat;
  background-size: 100%;
}

@media (prefers-color-scheme: dark) {
  body {
    --background-color: var(--google-gray-900);
    --error-code-color: var(--google-gray-500);
    --heading-color: var(--google-gray-500);
    --link-color: var(--google-blue-300);
    --primary-button-fill-color-active: rgb(129, 162, 208);
    --primary-button-fill-color: var(--google-blue-300);
    --primary-button-text-color: var(--google-gray-900);
    --quiet-background-color: var(--background-color);
    --secondary-button-border-color: var(--google-gray-700);
    --secondary-button-fill-color: var(--google-gray-900);
    --secondary-button-hover-fill-color: rgb(48, 51, 57);
    --secondary-button-text-color: var(--google-blue-300);
    --small-link-color: var(--google-blue-300);
    --text-color: var(--google-gray-500);
    --edge-black: #FFFFFF;
    --edge-focus-color: #888;
    --edge-blue-hover: #0070C6;
    --edge-blue-pressed: #0069B9;
    --edge-blue-rest: #0078D4;
    --edge-blue-selected: #63ACE5;
    --edge-border-hover:#909090;
    --edge-border-pressed: #787878;
    --edge-border-rest: #575757;
    --edge-grey-background: #2D2D2D;
    --edge-grey-selected: #676767;
    --edge-light-grey-hover: #424242;
    --edge-light-grey-pressed: #3E3E3E;
    --edge-light-grey-rest: #464646;
    --edge-text-blue-hover: #429BDF;
    --edge-text-blue-rest: #63ACE5;
    --edge-text-blue-pressed: #2189DA;
    --edge-text-grey-rest: #949494;
    --edge-white: #1D1D1D;
    --edge-primary-button-focus-shadow: 0 0 0 2px inset #F2F8FD;
  }
}
</style>
  <style>/* Copyright 2014 The Chromium Authors
   Copyright (C) Microsoft Corporation. All rights reserved.
   Use of this source code is governed by a BSD-style license that can be
   found in the LICENSE file. */

button {
  border: 0;
  border-radius: 2px;
  box-sizing: border-box;
  color: var(--primary-button-text-color);
  cursor: pointer;
  float: right;
  font-size: .875em;
  margin: 0;
  padding: 8px 16px;
  transition: box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);
  user-select: none;
}

[dir='rtl'] button {
  float: left;
}

.bad-clock button,
.captive-portal button,
.https-only button,
.insecure-form button,
.lookalike-url button,
.main-frame-blocked button,
.neterror button,
.pdf button,
.ssl button,
.enterprise-block button,
.enterprise-warn button,
.managed-profile-required button,
.safe-browsing-billing button,
.supervised-user-verify button {
  background: var(--edge-blue-rest);
}

.bad-clock a,
.captive-portal a,
.supervised-user-verify a,
.ssl a {
  color: var(--edge-text-blue-rest);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

@media (forced-colors: active) {
  .bad-clock a,
  .captive-portal a,
  .supervised-user-verify a,
  .ssl a {
    forced-color-adjust: none;
    color: LinkText;
    border-bottom: 1px solid currentColor;
  }
  .bad-clock a:focus,
  .captive-portal a:focus,
  .supervised-user-verify a:focus,
  .ssl a:focus {
    outline: none;
    border-bottom: 2px solid LinkText;
  }
}

.bad-clock #primary-button,
.captive-portal #primary-button,
.supervised-user-verify #primary-button,
.ssl #primary-button {
  color: white;
  background-color: var(--edge-blue-rest);
  border: 2px solid var(--edge-blue-rest);
  font-family: system-ui, sans-serif;
  font-weight: 600;
  outline: none;
}

.bad-clock #primary-button:focus,
.captive-portal #primary-button:focus,
.supervised-user-verify #primary-button:focus,
.ssl #primary-button:focus {
  border-color: var(--edge-focus-color);
  box-shadow: var(--edge-primary-button-focus-shadow);
}

.bad-clock #primary-button:hover,
.captive-portal #primary-button:hover,
.supervised-user-verify #primary-button:hover,
.ssl #primary-button:hover {
  background-color: var(--edge-blue-hover);
  border-color: var(--edge-blue-hover);
}

.bad-clock #primary-button:active,
.captive-portal #primary-button:active,
.supervised-user-verify #primary-button:active,
.ssl #primary-button:active {
  background-color: var(--edge-blue-pressed);
  box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3),
      0 2px 6px 2px rgba(60, 64, 67, .15);
}

@media(forced-colors: active) {
  /* Accent button */
  .bad-clock #primary-button,
  .captive-portal #primary-button,
  .supervised-user-verify #primary-button,
  .ssl #primary-button {
    forced-color-adjust: none;
    background-color: Highlight;
    color: HighlightText;
    border: 2px solid transparent;
  }
  .bad-clock #primary-button:focus,
  .captive-portal #primary-button:focus,
  .supervised-user-verify #primary-button:focus,
  .ssl #primary-button:focus {
    outline: 2px solid ButtonText;
    border-color: transparent;
    box-shadow: none;
  }
  .bad-clock #primary-button:hover,
  .captive-portal #primary-button:hover,
  .supervised-user-verify #primary-button:hover,
  .ssl #primary-button:hover {
    background-color: HighlightText;
    color: Highlight;
    border: 2px solid Highlight;
  }
}

.bad-clock #details-button,
.captive-portal #details-button,
.supervised-user-verify #details-button,
.ssl #details-button {
  color: var(--edge-primary-text-color);
  background-color: transparent;
  border-color: var(--edge-border-rest);
}

.bad-clock #details-button:focus,
.captive-portal #details-button:focus,
.supervised-user-verify #details-button:focus,
.ssl #details-button:focus {
  outline: var(--edge-focus-outline);
}

.bad-clock #details-button:active,
.captive-portal #details-button:active,
.supervised-user-verify #details-button:active,
.ssl #details-button:active {
  border-color: white;
  background: var(--edge-light-grey-pressed);
  box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3),
      0 2px 6px 2px rgba(60, 64, 67, .15);
}

.bad-clock #details-button:hover,
.captive-portal #details-button:hover,
.supervised-user-verify #details-button:hover,
.ssl #details-button:hover {
  background: var(--edge-light-grey-hover);
  border-color: var(--edge-border-hover);
  text-decoration: none;
}
@media(forced-colors: active) {
  /* Outline button */
  .bad-clock #details-button,
  .captive-portal #details-button,
  .supervised-user-verify #details-button,
  .ssl #details-button {
    forced-color-adjust: none;
    background-color: ButtonFace;
    color: ButtonText;
    border: 1px solid ButtonText;
  }
  .bad-clock #details-button:focus,
  .captive-portal #details-button:focus,
  .supervised-user-verify #details-button:focus,
  .ssl #details-button:focus {
    outline: 2px solid ButtonText;
  }
  .bad-clock #details-button:hover,
  .captive-portal #details-button:hover,
  .supervised-user-verify #details-button:hover,
  .ssl #details-button:hover {
    background-color: Highlight;
    color: HighlightText;
  }
}

.bad-clock #main-message > p,
.captive-portal #main-message > p,
.supervised-user-verify #main-message > p,
.ssl #main-message > p {
  font-size: 14px;
  line-height: 20px;
  color: var(--edge-primary-text-color);
}
}

button:active {
  background: var(--primary-button-fill-color-active);
  outline: 0;
}

#debugging {
  display: inline;
  overflow: auto;
}

.debugging-content {
  line-height: 1em;
  margin-bottom: 0;
  margin-top: 1em;
}

.debugging-content-fixed-width {
  display: block;
  font-family: monospace;
  font-size: 1.2em;
  margin-top: 0.5em;
}

.debugging-title {
  font-weight: bold;
}

#details {
  margin: 0 0 50px;
}

#details p:not(:first-of-type) {
  margin-top: 20px;
}

.secondary-button:active {
  border-color: white;
  box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3),
      0 2px 6px 2px rgba(60, 64, 67, .15);
}

.secondary-button:hover {
  background: var(--secondary-button-hover-fill-color);
  border-color: var(--secondary-button-hover-border-color);
  text-decoration: none;
}

.error-code {
  color: var(--error-code-color);
  font-size: .8em;
  margin-top: 12px;
  text-transform: uppercase;
}

#error-debugging-info {
  font-size: 0.8em;
}

h1 {
  color: var(--edge-primary-text-color);
  font-size: 1.6em;
  font-weight: bold;
  line-height: 1.25em;
  margin-bottom: 16px;
}

h2 {
  font-size: 1.2em;
  font-weight: normal;
}

.icon {
  height: 72px;
  margin: 0 0 40px;
  width: 72px;
}

input[type=checkbox] {
  opacity: 0;
}

input[type=checkbox]:focus ~ .checkbox::after {
  outline: -webkit-focus-ring-color auto 5px;
}

.interstitial-wrapper {
  box-sizing: border-box;
  font-size: 1em;
  line-height: 1.6em;
  margin: 14vh auto 0;
  max-width: 600px;
  width: 100%;
}

#main-message > p {
  display: inline;
}

#extended-reporting-opt-in {
  font-size: .875em;
  margin-top: 32px;
}

#extended-reporting-opt-in label {
  display: grid;
  grid-template-columns: 1.8em 1fr;
  position: relative;
}

#enhanced-protection-message {
  border-radius: 20px;
  font-size: 1em;
  margin-top: 32px;
  padding: 10px 5px;
}

#enhanced-protection-message a {
  color: var(--google-red-10);
}

#enhanced-protection-message label {
  display: grid;
  grid-template-columns: 2.5em 1fr;
  position: relative;
}

#enhanced-protection-message div {
  margin: 0.5em;
}

#enhanced-protection-message .icon {
  height: 1.5em;
  vertical-align: middle;
  width: 1.5em;
}

#https-upgrades-message {
  border-radius: 4px;
  font-size: 1em;
}

.nav-wrapper {
  margin-top: 51px;
}

.nav-wrapper::after {
  clear: both;
  content: '';
  display: table;
  width: 100%;
}

.small-link {
  color: var(--small-link-color);
  font-size: .875em;
}

.checkboxes {
  flex: 0 0 24px;
}

.checkbox {
  --padding: .9em;
  background: transparent;
  display: block;
  height: 1em;
  left: -1em;
  padding-inline-start: var(--padding);
  position: absolute;
  right: 0;
  top: -.5em;
  width: 1em;
}

.checkbox::after {
  border: 1px solid white;
  border-radius: 2px;
  content: '';
  height: 1em;
  left: var(--padding);
  position: absolute;
  top: var(--padding);
  width: 1em;
}

.checkbox::before {
  background: transparent;
  border: 2px solid white;
  border-inline-end-width: 0;
  border-top-width: 0;
  content: '';
  height: .2em;
  left: calc(.3em + var(--padding));
  opacity: 0;
  position: absolute;
  top: calc(.3em  + var(--padding));
  transform: rotate(-45deg);
  width: .5em;
}

input[type=checkbox]:checked ~ .checkbox::before {
  opacity: 1;
}

#recurrent-error-message {
  background: var(--edge-light-grey-rest);
  border-radius: 4px;
  margin-bottom: 16px;
  margin-top: 12px;
  padding: 12px 16px;
}

.showing-recurrent-error-message #extended-reporting-opt-in {
  margin-top: 16px;
}

.showing-recurrent-error-message #enhanced-protection-message {
  margin-top: 16px;
}

@media (max-width: 700px) {
  .interstitial-wrapper {
    padding: 0 10%;
  }

  #error-debugging-info {
    overflow: auto;
  }
}

@media (max-width: 420px) {
  button,
  [dir='rtl'] button,
  .small-link {
    float: none;
    font-size: .825em;
    font-weight: 500;
    margin: 0;
    width: 100%;
  }

  button {
    padding: 16px 24px;
  }

  #details {
    margin: 20px 0 20px 0;
  }

  #details p:not(:first-of-type) {
    margin-top: 10px;
  }

  .secondary-button:not(.hidden) {
    display: block;
    margin-top: 20px;
    text-align: center;
    width: 100%;
  }

  .interstitial-wrapper {
    padding: 0 5%;
  }

  #extended-reporting-opt-in {
    margin-top: 24px;
  }

  #enhanced-protection-message {
    margin-top: 24px;
  }

  .nav-wrapper {
    margin-top: 30px;
  }
}

/**
 * Mobile specific styling.
 * Navigation buttons are anchored to the bottom of the screen.
 * Details message replaces the top content in its own scrollable area.
 */

@media (max-width: 420px) {
  .nav-wrapper .secondary-button {
    border: 0;
    margin: 16px 0 0;
    margin-inline-end: 0;
    padding-bottom: 16px;
    padding-top: 16px;
  }
}

/* Fixed nav. */
@media (min-width: 240px) and (max-width: 420px) and
       (min-height: 401px),
       (min-width: 421px) and (min-height: 240px) and
       (max-height: 560px) {
  body .nav-wrapper {
    background: var(--edge-grey-background);
    bottom: 0;
    box-shadow: 0 -22px 40px var(--edge-grey-background);
    left: 0;
    margin: 0 auto;
    max-width: 736px;
    padding-inline-end: 24px;
    padding-inline-start: 24px;
    position: fixed;
    right: 0;
    width: 100%;
    z-index: 2;
  }

  .interstitial-wrapper {
    max-width: 736px;
  }

  #details,
  #main-content {
    padding-bottom: 40px;
  }

  #details {
    padding-top: 5.5vh;
  }

  button.small-link {
    color: var(--google-blue-600);
  }
}

@media (max-width: 420px) and (orientation: portrait),
       (max-height: 560px) {
  body {
    margin: 0 auto;
  }

  button,
  #details-button,
  [dir='rtl'] button,
  button.small-link {
    font-size: .933em;
    margin: 6px 0;
    transform: translatez(0);
  }

  .nav-wrapper {
    box-sizing: border-box;
    padding-bottom: 8px;
    width: 100%;
  }

  #details {
    box-sizing: border-box;
    height: auto;
    margin: 0;
    opacity: 1;
    transition: opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);
  }

  #details.hidden,
  #main-content.hidden {
    height: 0;
    opacity: 0;
    overflow: hidden;
    padding-bottom: 0;
    transition: none;
  }

  h1 {
    font-size: 1.5em;
    margin-bottom: 8px;
  }

  .icon {
    margin-bottom: 5.69vh;
  }

  .interstitial-wrapper {
    box-sizing: border-box;
    margin: 7vh auto 12px;
    padding: 0 24px;
    position: relative;
  }

  .interstitial-wrapper p {
    font-size: .95em;
    line-height: 1.61em;
    margin-top: 8px;
  }

  #main-content {
    margin: 0;
    transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1);
  }

  .small-link {
    border: 0;
  }

  .suggested-left > #control-buttons,
  .suggested-right > #control-buttons {
    float: none;
    margin: 0;
  }
}

@media (min-width: 421px) and (min-height: 500px) and (max-height: 560px) {
  .interstitial-wrapper {
    margin-top: 10vh;
  }
}

@media (min-height: 400px) and (orientation:portrait) {
  .interstitial-wrapper {
    margin-bottom: 145px;
  }
}

@media (min-height: 299px) {
  .nav-wrapper {
    padding-bottom: 16px;
  }
}

@media (max-height: 560px) and (min-height: 240px) and (orientation:landscape) {
  .extended-reporting-has-checkbox #details {
    padding-bottom: 80px;
  }
}

@media (min-height: 500px) and (max-height: 650px) and (max-width: 414px) and
       (orientation: portrait) {
  .interstitial-wrapper {
    margin-top: 7vh;
  }
}

@media (min-height: 650px) and (max-width: 414px) and (orientation: portrait) {
  .interstitial-wrapper {
    margin-top: 10vh;
  }
}

/* Small mobile screens. No fixed nav. */
@media (max-height: 400px) and (orientation: portrait),
       (max-height: 239px) and (orientation: landscape),
       (max-width: 419px) and (max-height: 399px) {
  .interstitial-wrapper {
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
  }

  #details {
    flex: 1 1 auto;
    order: 0;
  }

  #main-content {
    flex: 1 1 auto;
    order: 0;
  }

  .nav-wrapper {
    flex: 0 1 auto;
    margin-top: 8px;
    order: 1;
    padding-inline-end: 0;
    padding-inline-start: 0;
    position: relative;
    width: 100%;
  }

  button,
  .nav-wrapper .secondary-button {
    padding: 16px 24px;
  }

  button.small-link {
    color: var(--google-blue-600);
  }
}

@media (max-width: 239px) and (orientation: portrait) {
  .nav-wrapper {
    padding-inline-end: 0;
    padding-inline-start: 0;
  }
}

</style>
  <style>/* Copyright 2013 The Chromium Authors. All rights reserved.
 * Copyright (C) Microsoft Corporation. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

/* Don't use the main frame div when the error is in a subframe. */
body {
  background-color: var(--edge-grey-background);
}

html[subframe] #main-frame-error {
  display: none;
}

/* Don't use the subframe error div when the error is in a main frame. */
html:not([subframe]) #sub-frame-error {
  display: none;
}


h1 {
  margin-top: 0;
  word-wrap: break-word;
  color: var(--edge-primary-text-color);
  margin-bottom: 22px;
}

h1 span {
  font-weight: 600;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
  font-size: 32px;
  line-height: 40px;
}

h2 {
  color: var(--edge-secondary-text-color);
  font-size: 1.2em;
  font-weight: normal;
  margin: 10px 0;
}

a {
  color: var(--edge-text-blue-rest);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

a:hover {
  color: var(--edge-text-blue-hover);
}

a:focus {
  outline: none;
  text-decoration: none;
  border-bottom: var(--edge-focus-outline);
}

#buttons {
  display: grid;
  grid-template-rows: auto auto;
}

.text-button {
  float: inline-start !important;
  margin-bottom: 10px;
}

#game-div {
  display: block;
}

#game-buttons {
  display: flex;
  align-items: center;
  margin-top: 26px;
}

#game-message {
  margin-inline-end: 6px;
}

#game-button {
  padding: 0;
  color: rgba(33, 105, 235, 1);
  background-color: transparent;
  font-style: normal;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  display: inline-flex;
  gap: 6px;
}

#game-button:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

#game-button:focus:not(:disabled) {
  outline: var(--edge-focus-outline);
}

@media (forced-colors: active) {
  a:hover {
    color: HightlightText;
  }
}


.footer {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1rem;
  display: flex;
}

.footer div:first-of-type {
  margin-right: auto;
}

.left-footer {
  display: flex;
  flex-direction: row;
  column-gap: 10px;
  margin-left: 40px;
}

.edge-logo {
  content: url();
  width: 24px;
  height: 24px;
}

.edge-branding-text {
  flex: 82%;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 14px;
  line-height: 22px;
  text-align: right;
}

/* TODO(sayyagari): Migrate from usage of deprecated CSS -webkit-user-select. */
.icon {
  -webkit-user-select: none;
  display: inline-block;
  width: 128px;
  height: 128px;
  margin: 0 0 20px;
}

.icon-generic {
  /* Can't access edge://theme/IDR_ERROR_NETWORK_GENERIC from an untrusted
   * renderer process, so embed the resource manually. */
  content: -webkit-image-set(url() 1x,
      url() 2x);
}

.icon-offline {
  content: -webkit-image-set(url() 1x,
      url() 2x);
  position: relative;
}

.icon-page-error {
  content: url();
}

.icon-thinking {
  content: url();
}

.icon-blocked {
  content: url();
}

.icon-disconnected {
  content: url();
}

.icon-find {
  content: url();
}

.icon-insecure-site {
  content: url();
}

.icon-page-briefcase {
  content: url();
}
@media (width > 300px) and (height > 150px) {
  .icon-elixir-page-error {
    content: url();
  }

  .icon-elixir-thinking {
    content: url();
  }

  .icon-elixir-blocked {
    content: url();
  }

  .icon-elixir-disconnected {
    content: url();
  }

  .icon-elixir-insecure {
    content: url();
  }
}

.icon-play-game-button {
  width: 20px;
  height: 20px;
  content: url();
}

.icon-disabled {
  content: -webkit-image-set(url() 1x,
      url() 2x);
  width: 112px;
}

.managed-icon {
  content: url();
  margin-inline-end: 6px;
  height: 16px;
  width: 16px;
}

.error-code {
  display: block;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
  font-size: 10px;
  line-height: 14px;
  color: var(--edge-secondary-text-color);
  margin-top: 20px;
  font-weight: 400;
}

#content-top {
  margin: 20px;
}

.hidden {
  display: none !important;
}

#suggestion {
  margin-top: 15px;
}

#suggestions-list p {
  margin-block-end: 0;
  color: var(--edge-primary-text-color);
  font-weight: 700;
}

#suggestions-list ul {
  margin-top: 0;
  margin-left: 10px;
  color: var(--edge-primary-text-color);
  padding-inline-start: 0;
  list-style: none;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
}

#suggestions-list li {
  margin-top: 12px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}

#suggestions-list li:before {
  content: "•";
  font-size: 14px;
  padding-right: 1em;
}

.single-suggestion li:before {
  display: none;
}

#short-suggestion {
  margin-top: 5px;
}

#error-information-button {
  content: url();
  height: 24px;
  vertical-align: -.15em;
  width: 24px;
}

.use-popup-container#error-information-popup-container #error-information-popup {
  align-items: center;
  background-color: var(--edge-grey-background);
  display: flex;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 100;
}

.use-popup-container#error-information-popup-container #error-information-popup-content>p {
  margin-bottom: 11px;
  margin-inline-start: 20px;
}

#error-information-popup-content {
  margin-top: 20px;
}

.use-popup-container#error-information-popup-container #suggestions-list ul {
  margin-inline-start: 15px;
}

.use-popup-container#error-information-popup-container #error-information-popup-box {
  background-color: var(--edge-white);
  left: 5%;
  padding-bottom: 15px;
  padding-top: 15px;
  position: fixed;
  width: 90%;
  z-index: 101;
}

.use-popup-container#error-information-popup-container div.error-code {
  margin-inline-start: 20px;
}

.use-popup-container#error-information-popup-container #suggestions-list p {
  margin-inline-start: 20px;
}

:not(.use-popup-container)#error-information-popup-container #error-information-popup-close {
  display: none;
}

#error-information-popup-close {
  margin-bottom: 0px;
  margin-inline-end: 35px;
  margin-top: 15px;
  text-align: end;
}

.link-button {
  color: var(--edge-text-blue-rest);
  display: inline-block;
  font-weight: bold;
  text-transform: uppercase;
}

#sub-frame-error-details {
  color: var(--edge-secondary-text-color);
  
}

#search-container {
  /* Prevents a space between controls. */
  display: flex;
  margin-top: 20px;
}

.snackbar {
  background: #323232;
  border-radius: 2px;
  bottom: 24px;
  box-sizing: border-box;
  color: #fff;
  font-size: .87em;
  left: 24px;
  max-width: 568px;
  min-width: 288px;
  opacity: 0;
  padding: 16px 24px 12px;
  position: fixed;
  transform: translateY(90px);
  will-change: opacity, transform;
  z-index: 999;
}

.snackbar-show {
  -webkit-animation:
    show-snackbar .25s cubic-bezier(0.0, 0.0, 0.2, 1) forwards,
    hide-snackbar .25s cubic-bezier(0.4, 0.0, 1, 1) forwards 5s;
}

@-webkit-keyframes show-snackbar {
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@-webkit-keyframes hide-snackbar {
  0% {
    opacity: 1;
    transform: translateY(0);
  }

  100% {
    opacity: 0;
    transform: translateY(90px);
  }
}

.suggestions {
  margin-top: 18px;
  color: var(--edge-primary-text-color);
  font-size: 14px;
  line-height: 20px;
}

.suggestion-header {
  font-weight: bold;
  margin-bottom: 4px;
}

/* Decrease padding at low sizes. */
@media (max-width: 640px),
(max-height: 640px) {
  h1 {
    margin: 0 0 15px;
  }

  #content-top {
    margin: 15px;
  }

  .suggestions {
    margin-top: 10px;
  }

  .suggestion-header {
    margin-bottom: 0;
  }
}

#download-link,
#download-link-clicked {
  margin-bottom: 30px;
  margin-top: 30px;
}

#download-link-clicked {
  color: #BBB;
}

#download-link:before,
#download-link-clicked:before {
  content: url();
  display: inline-block;
  margin-inline-end: 4px;
  vertical-align: -webkit-baseline-middle;
}

#download-link-clicked:before {
  width: 0px;
  opacity: 0;
}

.offline-content-list-title {
  color: rgb(95, 99, 104);
  font-size: .8em;
  line-height: 1;
  margin-bottom: .8em;
}

#offline-content-suggestions {
  margin-inline-start: -5%;
  width: 110%;
}

/* The selectors below adjust the "overflow" of the suggestion cards contents
 * based on the same screen size based strategy used for the main frame, which
 * is applied by the `interstitial-wrapper` class. */
@media (max-width: 700px) {
  #offline-content-suggestions {
    margin-inline-start: -5%;
    width: 110%;
  }
}

@media (max-width: 420px) {
  #offline-content-suggestions {
    margin-inline-start: -2.5%;
    width: 105%;
  }
}

@media (max-width: 420px) and (orientation: portrait),
(max-height: 560px) {
  #offline-content-suggestions {
    margin-inline-start: -12px;
    width: calc(100% + 24px);
  }
}

.suggestion-with-image .offline-content-suggestion-visual {
  flex-basis: 8.2em;
  flex-shrink: 0;
}

.suggestion-with-image .offline-content-suggestion-visual>img {
  height: 100%;
  width: 100%;
}

#offline-content-list:not(.is-rtl) .suggestion-with-image .offline-content-suggestion-visual>img {
  border-bottom-right-radius: 8px;
  border-top-right-radius: 8px;
}

#offline-content-list.is-rtl .suggestion-with-image .offline-content-suggestion-visual>img {
  border-bottom-left-radius: 8px;
  border-top-left-radius: 8px;
}

.suggestion-with-icon .offline-content-suggestion-visual {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 4.2em;
  min-width: 4.2em;
}

.suggestion-with-icon .offline-content-suggestion-visual>div {
  align-items: center;
  background-color: rgb(241, 243, 244);
  border-radius: 50%;
  display: flex;
  height: 2.3em;
  justify-content: center;
  width: 2.3em;
}

.suggestion-with-icon .offline-content-suggestion-visual>div>img {
  height: 1.45em;
  width: 1.45em;
}

.offline-content-suggestion-texts {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  line-height: 1.3;
  padding: .9em;
  width: 100%;
}

/* TODO(sayyagari): Migrate from usage of deprecated CSS -webkit-box. */
.offline-content-suggestion-title {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  color: rgb(32, 33, 36);
  display: -webkit-box;
  font-size: 1.1em;
  overflow: hidden;
  text-overflow: ellipsis;
}

div.offline-content-suggestion {
  align-items: stretch;
  border-color: rgb(218, 220, 224);
  border-radius: 8px;
  border-style: solid;
  border-width: 1px;
  display: flex;
  justify-content: space-between;
  margin-bottom: .8em;
}

.suggestion-with-image {
  flex-direction: row;
  height: 8.2em;
  max-height: 8.2em;
}

.suggestion-with-icon {
  flex-direction: row-reverse;
  height: 4.2em;
  max-height: 4.2em;
}

.suggestion-with-icon .offline-content-suggestion-title {
  -webkit-line-clamp: 1;
  word-break: break-all;
}

.suggestion-with-icon .offline-content-suggestion-texts {
  padding-inline-start: 0px;
}

.offline-content-suggestion-attribution-freshness {
  color: rgb(95, 99, 104);
  display: flex;
  font-size: .8em;
}

/* TODO(sayyagari): Migrate from usage of deprecated CSS -webkit-box. */
.offline-content-suggestion-attribution {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  display: -webkit-box;
  flex-shrink: 1;
  overflow-wrap: break-word;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-all;
}

.no-attribution .offline-content-suggestion-attribution {
  display: none;
}

.offline-content-suggestion-freshness:before {
  content: '-';
  display: inline-block;
  flex-shrink: 0;
  margin-inline-end: .1em;
  margin-inline-start: .1em;
}

.no-attribution .offline-content-suggestion-freshness:before {
  display: none;
}

.offline-content-suggestion-freshness {
  flex-shrink: 0;
}

.suggestion-with-image .offline-content-suggestion-pin-spacer {
  flex-shrink: 1;
  flex-grow: 100;
}

.suggestion-with-image .offline-content-suggestion-pin {
  content: url();
  flex-shrink: 0;
  height: 1.4em;
  margin-inline-start: .4em;
  width: 1.4em;
}

.offline-content-list-action {
  text-align: center;
}

#offline-content-summary {
  border-color: rgb(241, 243, 244);
  border-radius: 12px;
  border-style: solid;
  border-width: 1px;
  padding: 12px;
  text-align: center;
}

.offline-content-summary-image-truncate {
  width: 45px;
}

.offline-content-summary-images {
  direction: ltr;
  display: flex;
  margin-top: 10px;
  justify-content: center;
  padding-bottom: 12px;
}

.offline-content-summary-images img {
  background: rgb(241, 243, 244);
  border-radius: 50%;
  box-shadow:
    0px 1px 2px 0px rgb(155, 155, 155),
    0px 1px 3px 0px rgb(155, 155, 155);
  padding: 12px;
  width: 32px;
}

.offline-content-summary-description {
  border-top: 1px solid rgb(241, 243, 244);
  padding-top: 12px;
}

.offline-content-summary-action {
  padding-top: 12px;
}

/* Don't allow overflow when in a subframe. */
html[subframe] body {
  overflow: hidden;
}

/* TODO(sayyagari): Migrate from usage of deprecated CSS -webkit-flex. */
#sub-frame-error {
  -webkit-align-items: center;
  background-color: #DDD;
  display: -webkit-flex;
  -webkit-flex-flow: column;
  height: 100%;
  -webkit-justify-content: center;
  left: 0;
  position: absolute;
  text-align: center;
  top: 0;
  transition: background-color .2s ease-in-out;
  width: 100%;
}

#sub-frame-error:hover {
  background-color: #EEE;
}

#sub-frame-error .icon-generic {
  margin: 0 0 16px;
}

#sub-frame-error-details {
  margin: 0 10px;
  text-align: center;
  visibility: hidden;
}

/* Show details only when hovering. */
#sub-frame-error:hover #sub-frame-error-details {
  visibility: visible;
}

/* If the iframe is too small, always hide the error code. */
/* TODO(mmenke): See if overflow: no-display works better, once supported. */
@media (max-width: 200px),
(max-height: 95px) {
  #sub-frame-error-details {
    display: none;
  }
}

/* Adjust icon for small embedded frames in apps. */
@media (max-height: 100px) {
  #sub-frame-error .icon-generic {
    height: auto;
    margin: 0;
    padding-top: 0;
    width: 25px;
  }
}

#control-buttons {
  display: block;
}

/* details-button is special; it's a <button> element that looks like a link. */
#details-buttons {
  width: 100%;
}

#details-button {
  box-shadow: none;
  min-width: 0;
  background: none;
  border: none;
  color: var(--edge-primary-text-color);
  cursor: pointer;
  font-size: 14px;
  line-height: 20px;
  text-decoration: none;
  float: left;
  padding: 4px;
  font-family: system-ui, sans-serif;
}

#details-button:before {
  display: inline-block;
  content: "";
  background-image: url("");
  margin-right: 10px;
  width: 14px;
  height: 10px;
  background-repeat: no-repeat;
  background-position: center center;
  fill: var(--edge-primary-text-color);
}

#details-button.expanded:before {
  transform: rotate(180deg);
}

#details-button:focus {
  outline: solid 2px var(--edge-focus-color);
}

@media (forced-colors: active) {

  #details-button,
  #game-button {
    forced-color-adjust: none;
    color: ButtonText;
    background-color: ButtonFace;
  }

  #game-button {
    /* extra border for this button only */
    border: 1px solid ButtonText;
  }

  #details-button::before,
  #game-button::before {
    fill: ButtonText;
  }

  #details-button:focus,
  #game-button:focus {
    outline: 2px solid ButtonText;
  }

  #details-button:hover,
  #game-button:hover {
    background-color: Highlight;
    color: HighlightText;
  }

  #details-button:hover::before,
  #game-button:hover::before {
    fill: HighlightText;
  }
}

.nav-wrapper {
  margin-top: 20px;
}

#control-buttons,
#stale-load-button,
#details-buttons {
  float: left !important;
}

.suggested-left .secondary-button {
  margin-inline-end: 0px;
}

#details-button.singular {
  float: none;
}

/* download-button shows both icon and text. */
#download-button {
  padding-bottom: 4px;
  padding-top: 4px;
  position: relative;
}

#download-button:before {
  background: -webkit-image-set(url() 1x,
      url() 2x) no-repeat;
  content: '';
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-inline-end: 4px;
  margin-inline-start: -4px;
  vertical-align: middle;
}

#download-button:disabled {
  background: rgb(180, 206, 249);
  color: rgb(255, 255, 255);
}

/* TODO(https://crbug.com/852872): UI for offline suggested content is incomplete. */
.suggested-thumbnail {
  width: 25vw;
  height: 25vw;
}

#reload-button {
  background-color: var(--edge-blue-rest);
  color: white;
  /* always white because it is a blue button */
  border-radius: 4px;
  width: 87px;
  height: 40px;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 16px;
  line-height: 22px;
  outline: none;
  padding: 0;
}

#reload-button:focus {
  outline: var(--edge-focus-outline);
  box-shadow: var(--edge-primary-button-focus-shadow);
}

#reload-button:hover {
  background-color: var(--edge-blue-hover);
}

#reload-button:active {
  background-color: var(--edge-blue-pressed);
}

@media (forced-colors: active) {

  /* Acts like an accent button */
  #reload-button {
    forced-color-adjust: none;
    background-color: Highlight;
    color: HighlightText;
  }

  #reload-button:hover {
    background-color: HighlightText;
    color: Highlight;
    border: 2px solid Highlight;
  }

  #reload-button:focus {
    outline: 2px solid ButtonText;
    box-shadow: none;
  }
}

#secondary-reload-button {
  background-color: var(--edge-light-grey-rest);
  color: var(--edge-primary-text-color);
  border-radius: 4px;
  width: 87px;
  height: 40px;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 16px;
  line-height: 22px;
  outline: none;
  padding: 0;
  margin-inline: 10px;
}

#secondary-reload-button:focus {
  outline: var(--edge-focus-outline);
  box-shadow: var(--edge-primary-button-focus-shadow);
}

#secondary-reload-button:hover {
  background-color: var(--edge-light-grey-hover);
}

#secondary-reload-button:active {
  background-color: var(--edge-light-grey-pressed);
}

@media (forced-colors: active) {

  /* Acts like an accent button */
  #secondary-reload-button {
    forced-color-adjust: none;
    background-color: Highlight;
    color: HighlightText;
  }

  #secondary-reload-button:hover {
    background-color: HighlightText;
    color: Highlight;
    border: 2px solid Highlight;
  }

  #secondary-reload-button:focus {
    outline: 2px solid ButtonText;
    box-shadow: none;
  }
}

#diagnose-button {
  background-color: var(--edge-blue-rest);
  color: white;
  /* always white because it is a blue button */
  border-radius: 4px;
  width: auto;
  height: 40px;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 16px;
  line-height: 22px;
  outline: none;
  padding-inline: 10px;
}

#diagnose-button:focus {
  outline: var(--edge-focus-outline);
  box-shadow: var(--edge-primary-button-focus-shadow);
}

#diagnose-button:hover {
  background-color: var(--edge-blue-hover);
}

#diagnose-button:active {
  background-color: var(--edge-blue-pressed);
}

@media (forced-colors: active) {
  /* Acts like an accent button */
  #diagnose-button {
    forced-color-adjust: none;
    background-color: Highlight;
    color: HighlightText;
  }

  #diagnose-button:hover {
    background-color: HighlightText;
    color: Highlight;
    border: 2px solid Highlight;
  }

  #diagnose-button:focus {
    outline: 2px solid ButtonText;
    box-shadow: none;
  }
}

#clearcookies-button {
  background-color: var(--edge-blue-rest);
  color: white;
  border-radius: 4px;
  width: auto;
  height: 40px;
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 16px;
  line-height: 22px;
  outline: none;
  padding-inline: 10px;
}

#clearcookies-button:focus {
  outline: var(--edge-focus-outline);
  box-shadow: var(--edge-primary-button-focus-shadow);
}

#clearcookies-button:hover {
  background-color: var(--edge-blue-hover);
}

#clearcookies-button:active {
  background-color: var(--edge-blue-pressed);
}

@media (forced-colors: active) {
  /* Acts like an accent button */
  #clearcookies-button {
    forced-color-adjust: none;
    background-color: Highlight;
    color: HighlightText;
  }

  #clearcookies-button:hover {
    background-color: HighlightText;
    color: Highlight;
    border: 2px solid Highlight;
  }

  #clearcookies-button:focus {
    outline: 2px solid ButtonText;
    box-shadow: none;
  }
}

/* Offline page */
.offline {
  transition: -webkit-filter 1.5s cubic-bezier(0.65, 0.05, 0.36, 1),
    background-color 1.5s cubic-bezier(0.65, 0.05, 0.36, 1);
  will-change: -webkit-filter, background-color;
}

#main-message>p {
  font-size: 16px;
  line-height: 22px;
  color: var(--edge-primary-text-color);
  font-family: "Segoe UI", system-ui, sans-serif;
  font-style: normal;
  font-weight: 600;
}

.offline #main-message>p {
  display: none;
}

.offline.inverted {
  -webkit-filter: invert(100%);
  background-color: var(--edge-black);
}

.offline .interstitial-wrapper {
  color: #2b2b2b;
  font-size: 1em;
  line-height: 1.55;
  margin: 0 auto;
  padding-top: 100px;
  width: 100%;
}

.interstitial-wrapper {
  max-width: 700px;
}

.offline .controller {
  background: rgba(247, 247, 247, .1);
  height: 100vh;
  left: 0;
  position: absolute;
  top: 0;
  width: 100vw;
  z-index: 9;
}

.game-split-line {
  margin-top: 0px;
  height: 1px;
  background: rgba(0, 0, 0, 0.18);
}

.game-button-msg {
  margin-top: 2px;
}

#offline-resources {
  display: none;
}

@media (max-width: 420px) {
  #download-button {
    padding-bottom: 12px;
    padding-top: 12px;
  }

  .snackbar {
    left: 0;
    bottom: 0;
    width: 100%;
    border-radius: 0;
  }
}

@media (max-height: 350px) {
  h1 {
    margin: 0 0 15px;
  }

  .icon-offline {
    margin: 0 0 10px;
  }

  .interstitial-wrapper {
    margin-top: 5%;
  }

  .nav-wrapper {
    margin-top: 30px;
  }
}

@media (min-width: 420px) and (max-width: 736px) and (min-height: 240px) and (max-height: 420px) and (orientation:landscape) {
  .interstitial-wrapper {
    margin-bottom: 100px;
  }
}

@media (max-width: 360px) and (max-height: 480px) {
  .offline .interstitial-wrapper {
    padding-top: 60px;
  }

}

@media (min-height: 240px) and (orientation: landscape) {
  .offline .interstitial-wrapper {
    margin-bottom: 90px;
  }

  .icon-offline {
    margin-bottom: 20px;
  }
}

@media (max-height: 320px) and (orientation: landscape) {
  .icon-offline {
    margin-bottom: 0;
  }

}

@media (max-width: 240px) {
  button {
    padding-left: 12px;
    padding-right: 12px;
  }

  .interstitial-wrapper {
    overflow: inherit;
    padding: 0 8px;
  }
}

@media (max-width: 120px) {
  button {
    width: auto;
  }
}

@media (max-height: 650px) and (orientation: landscape) {
  .footer {
    display: none;
  }
}

@media (max-width: 700px) and (orientation: portrait) {
  .footer {
    display: none;
  }
}

@media (min-width: 600px) {
  .interstitial-wrapper {
    margin-inline-start: 200px;
  }
}

@media (width <= 300px) and (height <= 150px) {
  .icon {
    display: none;
  }
}

@media (prefers-color-scheme: dark) {

  .managed-icon {
    filter: invert(1);
  }

  .icon-play-game-button {
    content: url();
  }

  #game-button {
    color: rgba(77, 141, 250, 1);

  }

  @media (width > 300px) and (height > 150px) {
    .icon-elixir-page-error {
      content: url();
    }

    .icon-elixir-thinking {
      content: url();
    }

    .icon-elixir-blocked {
      content: url();
    }

    .icon-elixir-disconnected {
      content: url();
    }

    .icon-elixir-insecure {
      content: url();
    }
  }
}

@media (forced-colors: active) and (prefers-color-scheme: dark) {
  @media (width > 300px) and (height > 150px) {

    .icon-elixir-page-error {
      content: url();
    }

    .icon-elixir-thinking {
      content: url();
    }

    .icon-elixir-blocked {
      content: url();
    }

    .icon-elixir-disconnected {
      content: url();
    }

    .icon-elixir-insecure {
      content: url();
    }
  }
}

@media (forced-colors: active) and (prefers-color-scheme: light) {
  @media (width > 300px) and (height > 150px) {
    .icon-elixir-page-error {
      content: url();
      filter: invert(1);
    }

    .icon-elixir-thinking {
      content: url();
    }

    .icon-elixir-blocked {
      content: url();
      filter: invert(1);
    }

    .icon-elixir-disconnected {
      content: url();
    }

    .icon-elixir-insecure {
      content: url();
    }
  }
}

#main-frame-error:not(.showing-details) #details {
  display: none;
}

@media (min-width: 240px) and (max-width: 420px) and (min-height: 401px),
       (min-height: 240px) and (max-height: 560px) and (min-width: 421px) {
  #main-frame-error.showing-details #main-content,
  #main-frame-error.showing-details .runner-container {
    display: none;
  }
}
</style>
  <style>.neterror-vnext #main-frame-error {
  margin: 64px auto 0;
}

.neterror-vnext .icon-disconnected {
  content: url();
}

.neterror-vnext .icon-thinking {
  content: url();
}

.neterror-vnext .icon {
  height: 128px;
  margin: 0 0 20px;
  width: 128px;
}

.neterror-vnext .main-content {
  display: flex;
  flex-direction: column;
}

.bing-search {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  margin-top: 80px;
}

.bing-search .search-input {
  height: 46px;
  border-radius: 99px;
  border: 1px solid rgba(255, 255, 255, 0.20);
  box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.12), 0px 4px 8px 0px rgba(0, 0, 0, 0.14);
  backdrop-filter: blur(30px);
  box-sizing: border-box;
  display: flex;
}

.bing-search .search-input input {
  border: none;
  padding: 0 12px;
  line-height: 22px;
  font-size: 16px;
  background: #FFF;
  border-radius: 99px 0 0 99px;
  flex: 1;
}

.bing-search .search-input input:focus-visible {
  outline: none;
}

.bing-search .search-input input::placeholder {
  color: #616161;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
}

.search-icon {
  width: 70px;
  border-radius: 0 99px 99px 0;
  background: #0078D4;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.top-sites {
  width: calc(100% - 60px);
  margin-top: 70px;
  display: grid;
  justify-content: center;
  grid-template-columns: repeat(auto-fit, 110px);
  grid-row-gap: 16px;
}

.site-item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 9px;
  cursor: pointer;
}

.site-item .site-image {
  display: flex;
  width: 44px;
  height: 44px;
  padding: 6px;
  justify-content: center;
  align-items: center;
  border-radius: 8px;
  border: 1px solid#E0E0E0;
  background-color: #fff;
  box-sizing: border-box;
}

.site-item .site-image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.site-item .title {
  color: #242424;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 85%;
}

@media (max-width: 644px) {
  .bing-search .search-input {
    width: 343px;
  }
}

@media (min-width: 644px) and (max-width: 956px) {
  .bing-search .search-input {
    width: 400px;
  }
}

@media (min-width: 956px) and (max-width: 1268px) {
  .bing-search .search-input {
    width: 528px;
  }
}

@media (min-width: 1268px) {
  .bing-search .search-input {
    width: 780px;
  }
}

@media (prefers-color-scheme: dark) {
  .site-item .title {
    color: #fff;
  }

  .neterror-vnext .icon-disconnected {
    content: url();
  }

  .neterror-vnext .icon-thinking {
    content: url();
  }
}

@media (forced-colors: active) {
  .neterror-vnext .icon-disconnected {
    content: url();
  }

  .neterror-vnext .icon-thinking {
    content: url();
  }
}
</style>
  <script>// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
 * Verify |value| is truthy.
 * @param value A value to check for truthiness. Note that this
 *     may be used to test whether |value| is defined or not, and we don't want
 *     to force a cast to boolean.
 */
function assert(value, message) {
    if (value) {
        return;
    }
    throw new Error('Assertion failed' + (message ? `: ${message}` : ''));
}

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
 * @fileoverview This file defines a singleton which provides access to all data
 * that is available as soon as the page's resources are loaded (before DOM
 * content has finished loading). This data includes both localized strings and
 * any data that is important to have ready from a very early stage (e.g. things
 * that must be displayed right away).
 *
 * Note that loadTimeData is not guaranteed to be consistent between page
 * refreshes (https://crbug.com/740629) and should not contain values that might
 * change if the page is re-opened later.
 */
class LoadTimeData {
    data_ = null;
    /**
     * Sets the backing object.
     *
     * Note that there is no getter for |data_| to discourage abuse of the form:
     *
     *     var value = loadTimeData.data()['key'];
     */
    set data(value) {
        assert(!this.data_, 'Re-setting data.');
        this.data_ = value;
    }
    /**
     * @param id An ID of a value that might exist.
     * @return True if |id| is a key in the dictionary.
     */
    valueExists(id) {
        // TODO(42630414): Re-add assert check.
        // Commenting assert statement to mitigate Bug 42601651.
        // assert(this.data_, 'No data. Did you remember to include strings.js?');
        return this.data_ ? id in this.data_ : false;
    }
    /**
     * Fetches a value, expecting that it exists.
     * @param id The key that identifies the desired value.
     * @return The corresponding value.
     */
    getValue(id) {
        assert(this.data_, 'No data. Did you remember to include strings.js?');
        const value = this.data_[id];
        assert(typeof value !== 'undefined', 'Could not find value for ' + id);
        return value;
    }
    /**
     * As above, but also makes sure that the value is a string.
     * @param id The key that identifies the desired string.
     * @return The corresponding string value.
     */
    getString(id) {
        const value = this.getValue(id);
        assert(typeof value === 'string', `[${value}] (${id}) is not a string`);
        return value;
    }
    /**
     * Returns a formatted localized string where $1 to $9 are replaced by the
     * second to the tenth argument.
     * @param id The ID of the string we want.
     * @param args The extra values to include in the formatted output.
     * @return The formatted string.
     */
    getStringF(id, ...args) {
        const value = this.getString(id);
        if (!value) {
            return '';
        }
        return this.substituteString(value, ...args);
    }
    /**
     * Returns a formatted localized string where $1 to $9 are replaced by the
     * second to the tenth argument. Any standalone $ signs must be escaped as
     * $$.
     * @param label The label to substitute through. This is not an resource ID.
     * @param args The extra values to include in the formatted output.
     * @return The formatted string.
     */
    substituteString(label, ...args) {
        return label.replace(/\$(.|$|\n)/g, function (m) {
            assert(m.match(/\$[$1-9]/), 'Unescaped $ found in localized string.');
            if (m === '$$') {
                return '$';
            }
            const substitute = args[Number(m[1]) - 1];
            if (substitute === undefined || substitute === null) {
                // Not all callers actually provide values for all substitutes. Return
                // an empty value for this case.
                return '';
            }
            return substitute.toString();
        });
    }
    /**
     * Returns a formatted string where $1 to $9 are replaced by the second to
     * tenth argument, split apart into a list of pieces describing how the
     * substitution was performed. Any standalone $ signs must be escaped as $$.
     * @param label A localized string to substitute through.
     *     This is not an resource ID.
     * @param args The extra values to include in the formatted output.
     * @return The formatted string pieces.
     */
    getSubstitutedStringPieces(label, ...args) {
        // Split the string by separately matching all occurrences of $1-9 and of
        // non $1-9 pieces.
        const pieces = (label.match(/(\$[1-9])|(([^$]|\$([^1-9]|$))+)/g) ||
            []).map(function (p) {
            // Pieces that are not $1-9 should be returned after replacing $$
            // with $.
            if (!p.match(/^\$[1-9]$/)) {
                assert((p.match(/\$/g) || []).length % 2 === 0, 'Unescaped $ found in localized string.');
                return { value: p.replace(/\$\$/g, '$'), arg: null };
            }
            // Otherwise, return the substitution value.
            const substitute = args[Number(p[1]) - 1];
            if (substitute === undefined || substitute === null) {
                // Not all callers actually provide values for all substitutes. Return
                // an empty value for this case.
                return { value: '', arg: p };
            }
            return { value: substitute.toString(), arg: p };
        });
        return pieces;
    }
    /**
     * As above, but also makes sure that the value is a boolean.
     * @param id The key that identifies the desired boolean.
     * @return The corresponding boolean value.
     */
    getBoolean(id) {
        const value = this.getValue(id);
        assert(typeof value === 'boolean', `[${value}] (${id}) is not a boolean`);
        return value;
    }
    /**
     * As above, but also makes sure that the value is an integer.
     * @param id The key that identifies the desired number.
     * @return The corresponding number value.
     */
    getInteger(id) {
        const value = this.getValue(id);
        assert(typeof value === 'number', `[${value}] (${id}) is not a number`);
        assert(value === Math.floor(value), 'Number isn\'t integer: ' + value);
        return value;
    }
    /**
     * Override values in loadTimeData with the values found in |replacements|.
     * @param replacements The dictionary object of keys to replace.
     */
    overrideValues(replacements) {
        assert(typeof replacements === 'object', 'Replacements must be a dictionary object.');
        assert(this.data_, 'Data must exist before being overridden');
        for (const key in replacements) {
            this.data_[key] = replacements[key];
        }
    }
    /**
     * Reset loadTimeData's data. Should only be used in tests.
     * @param newData The data to restore to, when null restores to unset state.
     */
    resetForTesting(newData = null) {
        this.data_ = newData;
    }
    /**
     * @return Whether loadTimeData.data has been set.
     */
    isInitialized() {
        return this.data_ !== null;
    }
}
const loadTimeData = new LoadTimeData();
// Edge only
// Guard against overriding existing loadTimeData. This could happen if either:
// a) the page is already including loadTimeData from a script tag (perhaps it
//    is still using the deprecated version) but then also ends up including
//    this file as part of some other dependency, or
// b) the page is using multiple webpack entry points (not a good idea anyway)
//    that both include this file.
// In either case, we should warn the developer that something is wrong and not
// silently overwrite the existing instance which might already be initialized
// with data.
console.assert(!window.hasOwnProperty('loadTimeData'), 'window.loadTimeData is already set.');
Object.assign(window, { loadTimeData: loadTimeData });

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
 * Alias for document.getElementById. Found elements must be HTMLElements.
 */
function getRequiredElement(id) {
    const el = document.querySelector(`#${id}`);
    assert(el);
    assert(el instanceof HTMLElement);
    return el;
}

/**
 * @license
 * Copyright 2019 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const t$3=globalThis,e$3=t$3.ShadowRoot&&(void 0===t$3.ShadyCSS||t$3.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s$3=Symbol(),o$3=new WeakMap;let n$3=class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s$3)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e;}get styleSheet(){let t=this.o;const s=this.t;if(e$3&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o$3.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o$3.set(s,t));}return t}toString(){return this.cssText}};const r$4=t=>new n$3("string"==typeof t?t:t+"",void 0,s$3),S$1=(s,o)=>{if(e$3)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement("style"),n=t$3.litNonce;void 0!==n&&o.setAttribute("nonce",n),o.textContent=e.cssText,s.appendChild(o);}},c$3=e$3?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return r$4(e)})(t):t
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */;const{is:i$2,defineProperty:e$2,getOwnPropertyDescriptor:r$3,getOwnPropertyNames:h$2,getOwnPropertySymbols:o$2,getPrototypeOf:n$2}=Object,a$1=globalThis,c$2=a$1.trustedTypes,l$1=c$2?c$2.emptyScript:"",p$1=a$1.reactiveElementPolyfillSupport,d$1=(t,s)=>t,u$1={toAttribute(t,s){switch(s){case Boolean:t=t?l$1:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f$3=(t,s)=>!i$2(t,s),y$1={attribute:!0,type:String,converter:u$1,reflect:!1,hasChanged:f$3};Symbol.metadata??=Symbol("metadata"),a$1.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y$1){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e$2(this.prototype,t,r);}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r$3(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i);},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y$1}static _$Ei(){if(this.hasOwnProperty(d$1("elementProperties")))return;const t=n$2(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d$1("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d$1("properties"))){const t=this.properties,s=[...h$2(t),...o$2(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$3(s));}else void 0!==s&&i.push(c$3(s));return i}static _$Eu(t,s){const i=s.attribute;return !1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev();}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$ES(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)));}addController(t){(this._$E_??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$E_?.delete(t);}_$ES(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S$1(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$E_?.forEach((t=>t.hostConnected?.()));}enableUpdating(t){}disconnectedCallback(){this._$E_?.forEach((t=>t.hostDisconnected?.()));}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$EO(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u$1).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u$1;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null;}}requestUpdate(t,s,i,e=!1,r){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f$3)(e?r:this[t],s))return;this.C(t,s,i);}!1===this.isUpdatePending&&(this._$Eg=this._$EP());}C(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t);}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.C(s,this[s],i);}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$E_?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$ET();}catch(s){throw t=!1,this._$ET(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$E_?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t);}_$ET(){this._$AL=new Map,this.isUpdatePending=!1;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return !0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET();}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:"open"},b[d$1("elementProperties")]=new Map,b[d$1("finalized")]=new Map,p$1?.({ReactiveElement:b}),(a$1.reactiveElementVersions??=[]).push("2.0.2");
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */const t$2=globalThis,i$1=t$2.trustedTypes,s$2=i$1?i$1.createPolicy("lit-html-desktop",{createHTML:t=>t}):void 0,e$1="$lit$",h$1=`lit$${(Math.random()+"").slice(9)}$`,o$1="?"+h$1,n$1=`<${o$1}>`,r$2=document,l=()=>r$2.createComment(""),c$1=t=>null===t||"object"!=typeof t&&"function"!=typeof t,a=Array.isArray,u=t=>a(t)||"function"==typeof t?.[Symbol.iterator],d="[ \t\n\f\r]",f$2=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\s"'>=/]+)(${d}*=${d}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),p=/'/g,g=/"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),w=Symbol.for("lit-noChange"),T=Symbol.for("lit-nothing"),A=new WeakMap,E=r$2.createTreeWalker(r$2,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==s$2?s$2.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?"<svg>":"",c=f$2;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f$2?"!--"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp("</"+u[2],"g")),c=m):void 0!==u[3]&&(c=m):c===m?">"===u[0]?(c=r??f$2,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f$2:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith("/>")?" ":"";l+=c===f$2?s+n$1:d>=0?(o.push(a),s.slice(0,d)+e$1+s.slice(d)+h$1+x):s+h$1+(-2===d?i:x);}return [C(t,l+(t[s]||"<?>")+(2===i?"</svg>":"")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes);}for(;null!==(r=E.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e$1)){const i=v[a++],s=r.getAttribute(t).split(h$1),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:"."===e[1]?k:"?"===e[1]?H:"@"===e[1]?I:R}),r.removeAttribute(t);}else t.startsWith(h$1)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h$1),s=t.length-1;if(s>0){r.textContent=i$1?i$1.emptyScript:"";for(let i=0;i<s;i++)r.append(t[i],l()),E.nextNode(),d.push({type:2,index:++c});r.append(t[s],l());}}}else if(8===r.nodeType)if(r.data===o$1)d.push({type:2,index:c});else {let t=-1;for(;-1!==(t=r.data.indexOf(h$1,t+1));)d.push({type:7,index:c}),t+=h$1.length-1;}c++;}}static createElement(t,i){const s=r$2.createElement("template");return s.innerHTML=t,s}}function N(t,i,s=t,e){if(i===w)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c$1(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=N(t,h._$AS(t,i.values),h,e)),i}class S{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i;}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r$2).importNode(i,!0);E.currentNode=e;let h=E.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new M(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new L(h,this,t)),this._$AV.push(i),l=s[++n];}o!==l?.index&&(h=E.nextNode(),o++);}return E.currentNode=r$2,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++;}}class M{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=T,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0;}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=N(this,t,i),c$1(t)?t===T||null==t||""===t?(this._$AH!==T&&this._$AR(),this._$AH=T):t!==this._$AH&&t!==w&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):u(t)?this.T(t):this._(t);}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t));}_(t){this._$AH!==T&&c$1(this._$AH)?this._$AA.nextSibling.data=t:this.$(r$2.createTextNode(t)),this._$AH=t;}g(t){const{values:i,_$litType$:s}=t,e="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=V.createElement(C(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else {const t=new S(e,this),s=t.u(this.options);t.p(i),this.$(s),this._$AH=t;}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new V(t)),i}T(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new M(this.k(l()),this.k(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e);}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i;}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t));}}class R{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=T,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T;}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c$1(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else {const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=N(this,e[s+n],i,n),r===w&&(r=this._$AH[n]),o||=!c$1(r)||r!==this._$AH[n],r===T?t=T:t!==T&&(t+=(r??"")+h[n+1]),this._$AH[n]=r;}o&&!e&&this.O(t);}O(t){t===T?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"");}}class k extends R{constructor(){super(...arguments),this.type=3;}O(t){this.element[this.name]=t===T?void 0:t;}}class H extends R{constructor(){super(...arguments),this.type=4;}O(t){this.element.toggleAttribute(this.name,!!t&&t!==T);}}class I extends R{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5;}_$AI(t,i=this){if((t=N(this,t,i,0)??T)===w)return;const s=this._$AH,e=t===T&&s!==T||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==T&&(s===T||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t;}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t);}}class L{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s;}get _$AU(){return this._$AM._$AU}_$AI(t){N(this,t);}}const Z=t$2.litHtmlPolyfillSupport;Z?.(V,M),(t$2.litHtmlVersions??=[]).push("3.1.0");const j=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{});}return h._$AI(t),h
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */};let s$1=class s extends b{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0;}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=j(i,this.renderRoot,this.renderOptions);}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0);}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1);}render(){return w}};s$1._$litElement$=!0,s$1["finalized"]=!0,globalThis.litElementHydrateSupport?.({LitElement:s$1});const r$1=globalThis.litElementPolyfillSupport;r$1?.({LitElement:s$1});(globalThis.litElementVersions??=[]).push("4.0.2");

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const HIDDEN_CLASS = 'hidden';

// Copyright 2013 The Chromium Authors. All rights reserved.
// Copyright (C) Microsoft Corporation. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
let showingDetails = false;
let lastData;
function toggleHelpBox() {
    showingDetails = !showingDetails;
    j(getHtml(lastData, showingDetails), getRequiredElement('content'));
}
// TODO(task.ms/55718071) [Network Error Page]
// Troubleshoot button onclick broken
function diagnoseErrors() {
    // 
    if (window.errorPageController) {
        window.errorPageController.diagnoseErrorsButtonClick();
    }
    // 
    // 
}
function clearCookiesClick() {
    if (window.errorPageController) {
        window.errorPageController.clearCookiesButtonClick();
    }
}
// Subframes use a different layout but the same html file.  This is to make it
// easier to support platforms that load the error page via different
// mechanisms (Currently just iOS). We also use the subframe style for portals
// as they are embedded like subframes and can't be interacted with by the user.
let isSubFrame = false;
if (window.top.location !== window.location) {
    document.documentElement.setAttribute('subframe', '');
    isSubFrame = true;
}
// Re-renders the error page using |strings| as the dictionary of values.
// Used by NetErrorTabHelper to update DNS error pages with probe results.
function updateForDnsProbe(newData) {
    onTemplateDataReceived(newData);
}
function getMainFrameErrorCssClass(showingDetails) {
    return showingDetails ? 'showing-details' : '';
}
function getMainFrameErrorIconCssClass(data) {
    return isSubFrame ? '' : data.iconClass;
}
function getSubFrameErrorIconCssClass(data) {
    return isSubFrame ? data.iconClass : '';
}
function shouldShowSuggestionsSummaryList(data) {
    return !!data.suggestionsSummaryList &&
        data.suggestionsSummaryList.length > 0;
}
function getSuggestionsSummaryItemCssClass(data) {
    assert(data.suggestionsSummaryList);
    return data.suggestionsSummaryList.length === 1 ? 'single-suggestion' : '';
}
// Does a search using |baseSearchUrl| and the text in the search box.
function search(baseSearchUrl) {
    const searchTextNode = getRequiredElement('search-box');
    document.location = baseSearchUrl + searchTextNode?.value;
    return false;
}
// Called when an <a> tag generated by the navigation correction service is
// clicked.
// @param {{clickData: string}} jstdata
function navigationCorrectionClicked(jstdata) {
    if (jstdata.clickData !== undefined && window.errorPageController) {
        window.errorPageController
            .edgeNavigationCorrectionClicked(jstdata.clickData);
    }
}
// Implements button clicks.  This function is needed during the transition
// between implementing these in trunk chromium and implementing them in
// iOS.
function reloadButtonClick(e) {
    const url = e.target.dataset['url'];
    if (window.errorPageController) {
        // 
        // 
        window.errorPageController.reloadButtonClick();
        // 
    }
    else {
        assert(url);
        window.location.href = url;
    }
}
function showSavedCopyButtonClick() {
    window.errorPageController?.showSavedCopyButtonClick();
}
function downloadButtonClick() {
    if (window.errorPageController) {
        window.errorPageController.downloadButtonClick();
        const downloadButton = getRequiredElement('download-button');
        downloadButton.disabled = true;
        downloadButton.textContent = downloadButton.disabledText;
    }
}
function setAutoFetchState(scheduled, canSchedule) {
    getRequiredElement('cancel-save-page-button')
        .classList.toggle(HIDDEN_CLASS, !scheduled);
    getRequiredElement('save-page-for-later-button')
        .classList.toggle(HIDDEN_CLASS, !canSchedule);
}
function toggleErrorInformationPopup() {
    getRequiredElement('error-information-popup-container')
        .classList.toggle(HIDDEN_CLASS);
}
function launchDownloadsPage() {
    window.errorPageController?.launchDownloadsPage();
}
function cancelSavePageClick() {
    assert(window.errorPageController);
    window.errorPageController?.cancelSavePage();
    // setAutoFetchState is not called in response to cancelSavePage(), so do it
    // now.
    setAutoFetchState(false, true);
}
function savePageLaterClick() {
    assert(window.errorPageController);
    window.errorPageController?.savePageForLater();
    // savePageForLater will eventually trigger a call to setAutoFetchState() when
    // it completes.
}
// Populates a summary of suggested offline content.
function offlineContentSummaryAvailable(summary) {
    // Note: See AvailableContentSummaryToValue in
    // available_offline_content_helper.cc for the data contained in |summary|.
    if (!summary || summary.total_items === 0 ||
        !loadTimeData.valueExists('offlineContentSummary')) {
        return;
    }
    getRequiredElement('offline-content-summary').hidden = false;
}
function shouldShowControlButtons(data) {
    const downloadButtonVisible = !!data.downloadButton && !!data.downloadButton.msg;
    const reloadButtonVisible = !!data.reloadButton && !!data.reloadButton.msg;
    const diagnoseButtonVisible = !!data.diagnoseButton && !!data.diagnoseButton.msg;
    const clearCookiesButtonVisible = !!data.clearCookiesButton && !!data.clearCookiesButton.msg;
    return reloadButtonVisible || downloadButtonVisible || diagnoseButtonVisible || clearCookiesButtonVisible;
}
function getPrimaryControlOnLeft() {
    let primaryControlOnLeft = true;
    // clang-format off
    // 
    return primaryControlOnLeft;
}
// Sets up the proper button layout for the current platform.
function getButtonsCssClass() {
    return getPrimaryControlOnLeft() ? 'suggested-left' : 'suggested-right';
}
function onDocumentLoad() {
    onTemplateDataReceived(window.loadTimeDataRaw);
}
function onTemplateDataReceived(newData) {
    lastData = newData;
    j(getHtml(lastData, showingDetails), getRequiredElement('content'));
    if (!isSubFrame && newData.iconClass === 'icon-offline') {
        document.documentElement.classList.add('offline');
        // Set loadTimeData.data because it is used by the dino code.
        loadTimeData.data = newData;
    }
}
function launchGame() {
    const gameButtonDisabled = loadTimeData.valueExists('disabledGame') &&
        loadTimeData.getBoolean('disabledGame');
    if (!gameButtonDisabled) {
        // 
        // 
        window.errorPageController?.openSurfGame();
        // 
    }
}
function getHtml(data, showingDetails) {
    // clang-format off
    return x `
    <div id="main-frame-error" class="interstitial-wrapper ${getMainFrameErrorCssClass(showingDetails)}">
      <div id="main-content">
        <div class="icon ${getMainFrameErrorIconCssClass(data)}"></div>
        <div id="main-message">
          <h1>
            <span .innerHTML="${data.heading.msg}"></span>
          </h1>
          ${data.summary ? x `
            <p .innerHTML="${data.summary.msg}"></p>
          ` : ''}
          <div id="diagnose-frame" class="hidden"></div>

          ${shouldShowSuggestionsSummaryList(data) ? x `
            <div id="suggestions-list">
              <p>${data.suggestionsSummaryListHeader}</p>
              <ul class="${getSuggestionsSummaryItemCssClass(data)}">
                ${data.suggestionsSummaryList.map(item => x `
                  <li .innerHTML="${item.summary}"></li>
                `)}
              </ul>
            </div>
          ` : ''}

          <div class="error-code">${data.errorCode}</div>

          ${data.savePageLater ? x `
            <div id="save-page-for-later-button">
              <a class="link-button" @click="${savePageLaterClick}">
                ${data.savePageLater.savePageMsg}
              </a>
            </div>
            <div id="cancel-save-page-button" class="hidden"
                @click="${cancelSavePageClick}"
                .innerHTML="${data.savePageLater.cancelMsg}">
            </div>
          ` : ''}
        </div>
      </div>
      <div id="buttons" class="nav-wrapper ${getButtonsCssClass()}">
        <div id="control-buttons" ?hidden="${!shouldShowControlButtons(data)}">
          ${getControlButtons(data)}
        </div>
        ${data.showGameButtons ? x `
          <div id="game-div">
            <div class="game-split-line"></div>
              <div id="game-buttons">
              <span id="game-message">${data.playGameMsg}</span>
              ${data.disabledGame ? x `
                <div class="managed-icon"
                  title=${data.disabledGameMsg}></div>
              ` : ''}
              <button
                id="game-button"
                ?disabled=${data.disabledGame}
                @click="${launchGame}">
                <div class="icon-play-game-button" alt=""></div>
                <div class="game-button-msg">
                  ${data.gameButton?.msg}
                </div>
              </button>
            </div>
          </div>
        ` : ''}
      </div>
      ${data.suggestionsDetails ? x `
        <div id="details">
          ${data.suggestionsDetails.map(item => x `
            <div class="suggestions">
              <div class="suggestion-header" .innerHTML="${item.header}"></div>
              <div class="suggestion-body" .innerHTML="${item.body}"></div>
            </div>
          `)}
        </div>
      ` : ''}
    </div>
    ${data.footer ? x `
      <div class="footer">
        <div class="left-footer">
          <div class="edge-logo" alt=""></div>
          <div class="edge-branding-text">${data.footer.msg}</div>
        </div>
      </div>
    ` : ''}
    ${data.summary ? x `
      <div id="sub-frame-error">
        <!-- Show details when hovering over the icon, in case the details are
             hidden because they're too large. -->
        <div class="icon ${getSubFrameErrorIconCssClass(data)}"></div>
        <div id="sub-frame-error-details" .innerHTML="${data.summary.msg}">
        </div>
      </div>
    ` : ''}
  `;
    // clang-format on
}
function getControlButtons(data) {
    if (!data.diagnoseButton && !data.downloadButton && !data.clearCookiesButton && data.reloadButton) {
        return x `
      ${data.reloadButton ? x `
        <button id="reload-button"
            class="blue-button text-button"
            @click="${reloadButtonClick}"
            data-url="${data.reloadButton.reloadUrl}">
          ${data.reloadButton.msg}
        </button>
      ` : ''}`;
    }
    return x `
    ${data.reloadButton && !getPrimaryControlOnLeft() ? x `
      <button id="secondary-reload-button"
          class="blue-button text-button"
          @click="${reloadButtonClick}"
          data-url="${data.reloadButton.reloadUrl}">
        ${data.reloadButton.msg}
      </button>
    ` : ''}
    ${data.clearCookiesButton ? x `
      <button id="clearcookies-button"
          class="blue-button text-button"
          @click="${clearCookiesClick}">
        ${data.clearCookiesButton.msg}
      </button>
    ` : ''}
    ${data.downloadButton ? x `
      <button id="download-button"
          class="blue-button text-button"
          @click="${downloadButtonClick}"
          .disabledText="${data.downloadButton.disabledMsg}">
        ${data.downloadButton.msg}
      </button>
    ` : ''}
    ${data.diagnoseButton ? x `
      <button id="diagnose-button"
          class="blue-button text-button"
          @click="${diagnoseErrors}">
        ${data.diagnoseButton.msg}
      </button>
    ` : ''}
    ${data.reloadButton && getPrimaryControlOnLeft() ? x `
      <button id="secondary-reload-button"
          class="blue-button text-button"
          @click="${reloadButtonClick}"
          data-url="${data.reloadButton.reloadUrl}">
        ${data.reloadButton.msg}
      </button>
    ` : ''}
    `;
}
// Opens edge://settings/privacy.
function launchEdgePrivacySettings() {
    window.errorPageController?.openEdgePrivacySettings();
}
// Updates automatic_https_upgrade_state from
// third_party/blink/public/mojom/renderer_preferences.mojom to
// edge_https::UpgradeState::UPGRADE_FAILURE_IGNORED if Edge's
// Automatic HTTPS component needs to be bypassed.
function edgeUpdateAutomaticHttpsState() {
    window.errorPageController?.edgeBypassAutomaticHttps();
}
function bingSearchClick() {
    const value = getRequiredElement('bing-input').value;
    if (!value) {
        return;
    }
    window.location.href = `https://www.bing.com/search?q=${encodeURIComponent(value)}&form=NETREL`;
}
function handleKeyDown(event) {
    if (event.key === 'Enter') {
        bingSearchClick();
    }
}
function handleTopSiteClick(url) {
    window.open(url);
}
function handleTopSiteKeydown(event, url) {
    if (event.key === 'Enter') {
        handleTopSiteClick(url);
    }
}
// Expose methods that are triggered either
//  - By `onclick=...` handlers in the HTML code, OR
//  - By `href="javascript:..."` in localized links.
//  - By inected JS code coming from C++
//
//  since those need to be available on the 'window' object.
Object.assign(window, {
    diagnoseErrors,
    clearCookiesClick,
    downloadButtonClick,
    launchDownloadsPage,
    reloadButtonClick,
    toggleErrorInformationPopup,
    toggleHelpBox,
    updateForDnsProbe,
    search,
    navigationCorrectionClicked,
    showSavedCopyButtonClick,
    offlineContentSummaryAvailable,
    launchGame,
    launchEdgePrivacySettings,
    edgeUpdateAutomaticHttpsState,
    bingSearchClick,
    handleKeyDown,
    handleTopSiteClick,
    handleTopSiteKeydown,
});
document.addEventListener('DOMContentLoaded', onDocumentLoad);
//# sourceMappingURL=edge-elixir-neterror.rollup.js.map
</script>
</head>

<body style="font-family: &#39;Segoe UI&#39;,Arial,&#39;Microsoft Yahei&#39;,sans-serif; font-size: 75%">
  <div id="content"><!---->
    <div id="main-frame-error" class="interstitial-wrapper ">
      <div id="main-content">
        <div class="icon "></div>
        <div id="main-message">
          <h1>
            <span>嗯… 无法访问此页面</span>
          </h1>
          <!--?lit$699021769$-->
            <p><strong jscontent="failedUrl">https://www.google.com/recaptcha/api2/aframe</strong> 上的网页似乎有问题，或者可能已永久移动到新的 Web 地址。</p>
          
          <div id="diagnose-frame" class="hidden"></div>

          <!--?lit$699021769$-->

          <div class="error-code"><!--?lit$699021769$-->ERR_QUIC_PROTOCOL_ERROR</div>

          <!--?lit$699021769$-->
        </div>
      </div>
      <div id="buttons" class="nav-wrapper suggested-left">
        <div id="control-buttons" hidden="">
          <!--?lit$699021769$-->
    <!--?lit$699021769$-->
    <!--?lit$699021769$-->
    <!--?lit$699021769$-->
    <!--?lit$699021769$-->
    <!--?lit$699021769$-->
    
        </div>
        <!--?lit$699021769$-->
      </div>
      <!--?lit$699021769$-->
        <div id="details">
          <!--?lit$699021769$-->
        </div>
      
    </div>
    <!--?lit$699021769$-->
      <div class="footer">
        <div class="left-footer">
          <div class="edge-logo" alt=""></div>
          <div class="edge-branding-text"><!--?lit$699021769$-->Microsoft Edge</div>
        </div>
      </div>
    
    <!--?lit$699021769$-->
      <div id="sub-frame-error">
        <!-- Show details when hovering over the icon, in case the details are
             hidden because they're too large. -->
        <div class="icon icon-elixir-thinking"></div>
        <div id="sub-frame-error-details"><strong jscontent="failedUrl">https://www.google.com/recaptcha/api2/aframe</strong> 上的网页似乎有问题，或者可能已永久移动到新的 Web 地址。</div>
      </div>
    
  </div>
  <div class="footer">
    <div class="left-footer">
      <div class="edge-logo" alt=""></div>
      <div class="edge-branding-text" jsselect="footer" jsvalues=".innerHTML:msg"></div>
    </div>
  </div>
  <div id="sub-frame-error">
    <!-- Show details when hovering over the icon, in case the details are
         hidden because they're too large. -->
    <div class="icon" jseval="updateIconClass(this.classList, iconClass)"></div>
    <div id="sub-frame-error-details" jsselect="summary" jsvalues=".innerHTML:msg"></div>
  </div>

  <!-- [China 1B] Add search box and Topsites to the page if feature flag is true and the network error is not an offline error -->
  <div class="bing-search hidden" id="neterror-bing-search">
    <!-- Search box -->
    <div class="search-input" jsdisplay="edge_vnext.showSearchBox">
      <input id="bing-input" type="text" jsvalues=".placeholder:edge_vnext.searchBoxHint" onkeydown="handleKeyDown(event);">
      <button class="search-icon" onclick="bingSearchClick();">
        <svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none">
          <path d="M10.6699 2.75C14.674 2.75 17.9199 5.99594 17.9199 10C17.9199 11.7319 17.3127 13.3219 16.2995 14.5688L21.2003 19.4697C21.4931 19.7626 21.4931 20.2374 21.2003 20.5303C20.934 20.7966 20.5173 20.8208 20.2237 20.6029L20.1396 20.5303L15.2387 15.6295C13.9918 16.6427 12.4018 17.25 10.6699 17.25C6.66586 17.25 3.41992 14.0041 3.41992 10C3.41992 5.99594 6.66586 2.75 10.6699 2.75ZM10.6699 4.25C7.49428 4.25 4.91992 6.82436 4.91992 10C4.91992 13.1756 7.49428 15.75 10.6699 15.75C13.8456 15.75 16.4199 13.1756 16.4199 10C16.4199 6.82436 13.8456 4.25 10.6699 4.25Z" fill="white"></path>
        </svg>
      </button>
    </div>

    <!-- Topsites -->
    <div class="top-sites" jsdisplay="(edge_vnext.showTopsites &amp;&amp; topSites &amp;&amp; topSites.length)">
      <div class="site-item" tabindex="0" jsselect="topSites" jsvalues=".url:url" onclick="handleTopSiteClick(this.url);" onkeydown="handleTopSiteKeydown(event,this.url)">
        <div class="site-image">
          <img jsvalues=".src:faviconUrl">
        </div>
        <div class="title" jscontent="title"></div>
      </div>
    </div>
  </div>



<script>var loadTimeDataRaw = {"details":"详细信息","errorCode":"ERR_QUIC_PROTOCOL_ERROR","fontfamily":"'Segoe UI',Arial,'Microsoft Yahei',sans-serif","fontfamilyMd":"'Segoe UI',Arial,'Microsoft Yahei',sans-serif","fontsize":"75%","footer":{"msg":"Microsoft Edge"},"heading":{"msg":"嗯… 无法访问此页面"},"hideDetails":"隐藏详细信息","iconClass":"icon-elixir-thinking","is_windows_xbox_sku":"false","language":"zh","suggestionsDetails":[],"suggestionsSummaryList":[],"summary":{"msg":"\u003Cstrong jscontent=\"failedUrl\">https://www.google.com/recaptcha/api2/aframe\u003C/strong> 上的网页似乎有问题，或者可能已永久移动到新的 Web 地址。"},"textdirection":"ltr","title":"www.google.com"};</script></body></html>